草庐IT

c++ - Swig -includeall 除了...

全部标签

c# - 改进/修复 C 样式 block 注释的正则表达式

我正在(用C#)编写一个简单的解析器来处理一种看起来很像经典C的脚本语言。在我的一个脚本文件中,我用来识别/*block注释*/的正则表达式进入了某种无限循环,占用了100%的CPU多年。我使用的正则表达式是这样的:/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/关于为什么这可能被锁定有什么建议吗?或者,我可以改用什么正则表达式?更多信息:使用面向.NET3.5的C#3.0;我正在使用Regex.Match(string,int)方法在字符串的特定索引处开始匹配;我已经让程序运行了一个多小时,但比赛还没有完成;传递给Regex构造函数的选项是Regex

c# - 除了 LINQ,有人发现 "var"的用途吗?

只是好奇。我大约99.999%确定没有...但有什么?编辑:这些都是好的答案(节省打字时间或使代码不那么冗长以提高“可读性”)。我想我应该澄清一下我所说的“使用”是什么意思——一些没有“var”就无法完成的构造/设计。 最佳答案 什么在可读性方面更好?AReallyReallyLongBusinessObjectNameobj=newAReallyReallyLongBusinessObjectName();或varobj=newAReallyReallyLongBusinessObjectName();我说的是可读性,因为使用va

实战演练 | 在 MySQL 中选择除了某一列以外的所有列

SQL通过SELECT*(SELECTALL)子句使选择表中的所有字段变得非常简单。不幸的是,一旦您从列表中省略一列,SELECTALL语句就会消失。写出每个列的名称很快就会变得乏味,尤其是当您碰巧要处理包含数十个列的表时。如果我们可以选择除一列之外的每一列怎么办-通过排除而不是包含进行选择?可以办到。实际上,有两种方法可以做到这一点-一种简单,另一种则少一些。这些将是今天博客的重点。方法1:使用INFORMATION_SCHEMA.COLUMNS表INFORMATION_SCHEMA提供对数据库元数据的访问,有关MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问权限。更具体地说

c# - 我如何声明派生的 "shell"类,它们除了重命名外什么都不做?

我在代码中传递和使用了两种不同类型的字符串,这两种字符串密切相关,但不应相互混淆。我想我可以通过拥有两个只是字符串但具有不同名称的类来帮助自己避免错误,这样方法签名(以及一般的类型不兼容)将强制执行两种不同类型字符串的语义。同时,我不想从something="foo";重构。至something.Value="foo";在一百个地方。第一个想法:privateclassFirstKind:string{}privateclassSecondKind:string{}想法是如果我有voidMyMethod(FirstKindvarOne,SecondKindvarTwo){...},然后

c# - 如何在 C# Unity 中使用带有二维数组的 C 结构

所以我有一个具有以下结构的CAPItypedefstructmat4f_{floatm[4][4];}mat4f;它作为参数传递给我的一个API函数:voidmyFunction(constmat4fmatrix);我正在使用dll将此函数导出到Unity中的C#:[DllImport("mylib")]privatestaticexternvoidmyFunction(mat4fmatrix);我的问题是,我应该将相应的C#结构设为什么?现在我有以下内容:[StructLayout(LayoutKind.Sequential)]publicstructmat4f{publicfloa

c# - PostSharp:使用 OnMethodInvocationAspect 时删除了自定义属性

我有这样的方面:publicclassMyAttribute:OnMethodInvocationAspect{publicintOffset{get;internalset;}publicMyAttribute(intoffset){this.Offset=offset;}publicoverridevoidOnInvocation(MethodInvocationEventArgseventArgs){//dosomestuff}}现在我正在上课,我将我的属性添加到它:classMyClass{[MyAttribute(0x10)]publicintMyProp{get;set;}

c# - 除了泛型类之外,还有其他方法可以在不装箱的情况下调用结构的接口(interface)方法吗?

查看代码片段publicinterfaceI0{voidf0();}publicstructS0:I0{voidI0.f0(){}}publicclassAwhereE:I0{publicEe;publicvoidcall(){e.f0();}}这里是call()的IL代码.maxstack8L_0000:ldarg.0L_0001:ldflda!0Temp.A`1::eL_0006:constrained!EL_000c:callvirtinstancevoidTemp.I0::f0()L_0011:ret参见constrained的引用资料Theconstrainedprefixc

c# - 除了方法在 linq 中如何工作

我有类(class):classSomeClass{publicstringName{get;set;}publicintSomeInt{get;set;}}classSomeComparison:IEqualityComparer{publicboolEquals(SomeClasss,SomeClassd){returns.Name==d.Name;}publicintGetHashCode(SomeClassa){return(a.Name.GetHashCode()*251);}}我还有两个大的List称为list1和list2以前我有:varq=(fromainlist1fr

c# - 用 C# "out parameters"嵌入单声道

我正在尝试使用libmono将C#类嵌入到C应用程序中,但文档有点缺乏。我正在尝试调用原型(prototype)为voidMessageToSend(outMessageObjectmessage);的方法我如何表示“输出参数”?它是指向MonoObject的指针吗?谢谢。附言。就libmono而言,'out'和'ref'参数是否相同? 最佳答案 你是对的,它是MonoObject**。out和ref除了C#编译器之外几乎所有东西都是一样的。 关于c#-用C#"outparameters

c# - 在 C# 中使用 C/内联汇编

是否有一些方法可以在C#应用程序中混合使用C源代码和内联asm(这不是C++代码)?我对它是如何完成的并不挑剔,如果它需要将C/asm编译成与C#应用程序一起的DLL,那就这样吧。我知道在C#中没有使用程序集的规定,因此出现了这个问题。我要合并的示例代码:SomeFunc(unsignedchar*outputData,unsignedchar*inputData,unsignedlonginputDataLength){_asm{//AssemblycodethatprocessesinputDataandstoresresultinoutputData}}在声明该函数之前,C代码中